basic case works; must test geo rules and error handling