reorganized some api helpers; add force location update