Added Strategy Pattern.