temp commit
keyboardLayouts moved to input_layouts. functional transformation
try use reduce
revert use reduce
test
test again
big dismantle!