changed run implementation