sync with pysurfer/pysurfer/master