- use spring AOP
- add logging before and after method invocation through AOP aspect
- add caching aspect for finding document by type (caching types)