moved partial function to separate modules