uses mock.patch to mock datetime module rather than passing it as a dependency to Profiler. creates Profile class to be used instead of dictionaries.
creates Checkpoint class to be used instead of dictionary. Adapts TextFormatter to work with Profile objects instead of dictionaries