micro optimization: using static vars instead of aop container