finish implementing locationProvider, value, and factory