added basic class system