implement appender
add guards