quite a bit of refactoring
even more string refactoring