might as well try the c version first