add topology generator
move memoization inside of "instance"
fix topology namespace