revise to use logger in classes
require logger