Added User model and updated program structure