Refactoring to add TargetPortfolio concept