pieces can move one at a time
refactored some long conditionals