Updates to work with linux/osx and gcc/clang