implement basic class definitions