commit with complete validation