Big pull request

It's about time