added validation and exception control to save()
playing around with invoke tasks
refactored setup.py with external version
version bump
changes