add fully (?) functional level based upgrades