duplicate function. fix use first. compare functions later.