moved location processing to its own gem