adding optional message and message-fn without testing
testing presence-of