refactoring separating plan, exploit, profit