observable manipulations