-Added logger singleton instead of using compile macros to decide on how to handle logs

-Reformatted Solver code for better readability