implement animal.scm