with model layer