restructuring and PP:initial commit