add Memoizer class
wip