completed model layer