did a LOT of refactoring. unfortunately, eclipse doesn't use git-mv