codes done by 2/24, needs to be fix