#46: moved abstractPiece out of inner class
#46: refactored all references to compile