theoretically, walkiung needs to be implemented. everything else
should have some sort of template