work in progress (added reflection testing)