Location Module

Separate out the location functionality in a new module