implemented pure in IO