complete rewrite....