Changing membership length

I’m building a site offers monthly and yearly subscriptions for users for different prices, with monthly subscription being level 1 membership and yearly level 2, but both have access to same content. I want users to be able to upgrade or downgrade their subscriptions.

I was trying to do this with Billing Modification Forms, but it seems that if I do this, user’s new subscription is activated immediately instead of after their current subscription ends. For example if user has 3 weeks left on their monthly subscription and they upgrade to yearly subscription they lose the 3 weeks they had left. Is there a way to do this so that the new subscription only activates when user’s current subscription ends?

Thanks