refactor to make it easier to move blocks