class.js | remove Object.defineProperty
add memoize.js
pubsub.js | use while instead for