transfer functions - still have some issues with the naming and positioning -
little bit faster than the original