Prepare to change to strategypattern