I was thinking of splitting the logging functionality from a ProfileSample concept. Essentially instead of this doing `@logger.call("....")` instead it would have a "listener" and do `@listener.call(ProfileSample.new(....))`. Then we would use a logging listener, that listener can also do aggregation.