Remove struct, use the strategy pattern

http://en.wikipedia.org/wiki/Strategy_pattern