Uses AOP and Java Reflections to capture data