Refactoring: _cached() decorator