line: basic abstraction for accumulating moves
piece: remove piece module in favor of a flatter structure