Add observe() function