Refactored for modular use
tagging 0.0.7