Implement Logger (Part 2). Closes #11