make the logger thread safe! refactor how the logger works; make a logger object instead of having a set of functions. the logger object is global, and only one instance of it exists.