Moved some method definitions into .cpp files, and created a forward declaration header