Removed caching (outside concern); refactoring