I done this as part of a small uni assignment. I was given half a semester to do it, but it finished it in 2 weeks hehehe...