refactored models to work with geo push