Moving towards strategy pattern