aaaaa
…..
in order to work, reduce function
improved some low level function