refactor up/down move methods