Some serious refactoring

Refactered into multiple files and Added Interfaces for the currenly
implemented board pieces.