SE339 - All classes implemented for hw3