Repackaged to reduce size
