add memoize
implement Level class
put dummy to work finely