basic class hierarchy added