updated version to reflect rewrite