Make this a transient val, and rename it preferredLoc. Then you can remove the getPreferredLocation method.