restrcutured for MVP