reparsing as task instead of function