Added a few classes and merged with Samuel's project