initial support for AOP

#8