slightly improved functionality