refactor movable code pt.1/2