few changes

carefully merge it