Make logic clearer by removing extra constructs and extracting vals
Add support for validate to return added questions for any preference