updated model with favorite functionality