add oauth callbacks, fix geom