added user authentication and model associations