implements hooks and appenders