MAJOR REWRITE :)

Took me hours to do! I am tierd