use package once instead of reinventing the wheel