observer source code