wrapped code in a class
base class with save() and rollback() to provide object history changelog