partial share code. not done