Drop generics from Location and use GObject for custom data storage