take a callback and validate based on options