move to functions to tasks
rejig function for more dynamic defaults, fallbacks, sub-array combination
add form_processor variable for later use