#5 Implement rollback. Seems not be a simple operation so hope people use it with caution