AOP Addition and some code changes for enhancement
Merge origin/master