refactored move methods for pieces