Add product model and tests