optimize project package struct