Implementation of Strategy Pattern