some refactoring and thorough tests
added default config options + added option to define cachetier on existing method instead of supplying block