refactor locations to inherit from Location::Base

dependencies either have an explicit location or they have none