Moved report related code to separate 'report' module