refactored locations tab to use custom view management because Android's ListView sucks