Updated with validations