adding retval & typedef