some shake up in the code