Midterm submission (Dan Truong)

Full features and requirements.

Work in Progress - formatting the output