Refactor for_location to be easier in subclasses