Implement upgrades and improve interface