add 'observe' option. and observe/unobserve utility methods.