removed @ shared boxes with &mut and & borowed ptrs