change design for piece, practice Factory Pattern