add takechar function