Nearly Completed, just need to implement a few more things.