more of rewrite... terrible commit messages.. :(