extract update package logic into interactor