First commit (main classes)