added while and do-while