This is an example for stategy pattern