Move reporter related stuff to its own place

Add NullMessageReporter to remove unnecessary invocation during tests