some good struture changes