Some refactoring + fix for mac clang++