Add publication model with tests