Principles of package developement