always return integer