Basic Class Structure

Added the basic class structure that Hao and I discussed during week 3
and 4. No methods are filled in except for their parameters and return
types.

Still needs some tweaking but a good start so far.