add IOLogWrapper, remove base.hpp