use a proper key class vs a string for dependency and wish keys. Turn into a property