first commit
refactored to separate geolocation from the rest of the actions
use URLs as well as files