p_action => member func
p_notice => member func
p_topic => member function it needs to be separated into two calls or an optional second parameter