Add some player classes, and some refactoring.