submission and validation callbacks