moveUp|Down should return false on failure instead of throw

- Refactoring, remove usage of extract()
- Test cases updated