add cache
wrap nsdicitionary class maker
general refactor
refactor fixup