initial architecture
minor refactor: Piece renamed