many minor changes according to user request.