mostly done form assignment