add rollback capability
modify rollback to not be stupid