added run method, player classes, and AI