pattern Stragedy applied to do the app more flexible