made a few changes to introduce some of scarlet's aop