utility classes
update to work with aop infected objects