observer style canvas view library.