further extract chain by moving accumulating argument ability into argumentsAsList
move singletonMapping out into own file