Hopefully last pull request :)

I found a bug with returning context, so the master was broken for a while :(

Not sure why, but returning the context there caused infinite recursion. The code is now cleaner and avoids this issue.

I also fixed the test settings so it's possible to run setup.py test but the cases don't pass. This appears to be an expected situation, as they don't pass in the upstream version?

Thanks!