Extract utility methods
Split out constants and improve docs
Getting ready for egg packaging
Adding setup.py
Bug fixes