make the construction better, add the play model function