implemented Piece