renamed bind->fmap and init->return