HW3 first submission.
I'm pretty sure I'm kind done with it... but you can never know..
hopefully there's no big mistakes.. and will just need to beautify it
later..