A simple lightweight framework that allows you to construct steps that can be committed and rolled back