add model and validations
add new rollback mechanism