add models and tests