map is mostly correct, refactoring Block behaivor for control