python version (Go on appengine is still rough)