Needs whitespace fixes in places like this, otherwise great! Thanks :)