refactored Investment model