added everything learned so far on top of assignment requirments