ported to pygame