Cleaned up strategy pattern and added example