slightly less sucky
dont depend on pygame