[refactor] move subclasses of piece to separate file