basic class structure completed