model answers, cache, some refactoring+comments