updated changes after discussion, need to do testing