implement animal.hs