Add core.logger to allow delegation of logging.
Close #89