adding couple hash configurations
refactor of movement to be more easily configurable
moving not implemented errors up to superclass
rename
rename
exposing less to public interfaces
private not protected