method borrowing
some Decorators
pure cache