refactors ApiVersion to take an options hash