auto assign constructor