redo reflection in separate package

'precompile' reflection using closures