replaced location listener with callback

@jacobawenger do you mind reviewing this?