Same as above, it's better to just put the implementation for each version in it's own class.