add a Observer lib like ruby