package generation