todo: gauss-bonnet operator