How does method versioning work