Committing what I think is my last bit before submission. Kasun still needs to fix some stuff up, there are notes in the document to him