basic class structure setup