added Observable support