more refcatoring