diff --git a/install.sh b/install.sh
index b40ebfc8de..7046061288 100755
--- a/install.sh
+++ b/install.sh
@@ -292,6 +292,8 @@ LIB_DIRS="$LIB_LOCATION/ruby \
           $LIB_LOCATION/ruby/vcenter_driver \
           $LIB_LOCATION/ruby/nsx_driver \
           $LIB_LOCATION/oneprovision/lib \
+          $LIB_LOCATION/oneprovision/provider_apis \
+          $LIB_LOCATION/oneprovision/provider_apis/vultr \
           $LIB_LOCATION/oneprovision/lib/terraform \
           $LIB_LOCATION/oneprovision/lib/terraform/providers \
           $LIB_LOCATION/oneprovision/lib/terraform/providers/templates \
@@ -784,6 +786,8 @@ INSTALL_ONEPROVISION_FILES=(
     ONEPROVISION_ANSIBLE_FILES:$SHARE_LOCATION/oneprovision
     ONEPROVISION_TEMPLATES_FILES:$SHARE_LOCATION/oneprovision
     ONEPROVISION_LIB_FILES:$LIB_LOCATION/oneprovision/lib
+    ONEPROVISION_LIB_API_FILES:$LIB_LOCATION/oneprovision/provider_apis
+    ONEPROVISION_LIB_API_VULTR_FILES:$LIB_LOCATION/oneprovision/provider_apis/vultr
     ONEPROVISION_LIB_TF_FILES:$LIB_LOCATION/oneprovision/lib/terraform
     ONEPROVISION_LIB_PROVIDERS_FILES:$LIB_LOCATION/oneprovision/lib/terraform/providers
     ONEPROVISION_LIB_AWS_ERB_FILES:$LIB_LOCATION/oneprovision/lib/terraform/providers/templates/aws
@@ -2491,6 +2495,8 @@ ONEPROVISION_TEMPLATES_FILES="share/oneprovision/edge-clusters/"
 ONEPROVISION_LIB_FILES="src/oneprovision/lib/oneprovision.rb \
                         src/oneprovision/lib/provision_element.rb"
 
+ONEPROVISION_LIB_API_VULTR_FILES="src/oneprovision/provider_apis/vultr/lib/vultr.rb"
+
 ONEPROVISION_LIB_PROVISION_FILES="src/oneprovision/lib/provision/ansible.rb \
                                   src/oneprovision/lib/provision/oneprovision.rb \
                                   src/oneprovision/lib/provision/driver.rb \
@@ -2956,8 +2962,7 @@ DOCS_FILES="LICENSE LICENSE.onsla LICENSE.onsla-nc NOTICE README.md"
 # Ruby VENDOR files
 #-----------------------------------------------------------------------------
 
-VENDOR_DIRS="share/vendor/ruby/gems/packethost \
-             share/vendor/ruby/gems/vultr"
+VENDOR_DIRS="share/vendor/ruby/gems/packethost"
 
 #-------------------------------------------------------------------------------
 # Libvirt RelaxNG schemas
diff --git a/src/ipamm_mad/remotes/vultr/register_address_range b/src/ipamm_mad/remotes/vultr/register_address_range
index 42b02249bd..b8677e221e 100755
--- a/src/ipamm_mad/remotes/vultr/register_address_range
+++ b/src/ipamm_mad/remotes/vultr/register_address_range
@@ -68,12 +68,12 @@ ONE_LOCATION = ENV['ONE_LOCATION'] unless defined?(ONE_LOCATION)
 
 if !ONE_LOCATION
     LIB_LOCATION      ||= '/usr/lib/one'
-    VULTR_LOCATION    ||= '/usr/lib/one/ruby/vendors/vultr/lib'
+    VULTR_LOCATION    ||= '/usr/lib/one/oneprovision/provider_apis/vultr'
     RUBY_LIB_LOCATION ||= '/usr/lib/one/ruby'
     GEMS_LOCATION     ||= '/usr/share/one/gems'
 else
     LIB_LOCATION      ||= ONE_LOCATION + '/lib'
-    VULTR_LOCATION    ||= ONE_LOCATION + '/lib/ruby/vendors/vultr/lib'
+    VULTR_LOCATION    ||= ONE_LOCATION + '/oneprovision/provider_apis/vultr'
     RUBY_LIB_LOCATION ||= ONE_LOCATION + '/lib/ruby'
     GEMS_LOCATION     ||= ONE_LOCATION + '/share/gems'
 end
diff --git a/src/ipamm_mad/remotes/vultr/unregister_address_range b/src/ipamm_mad/remotes/vultr/unregister_address_range
index 0fe2814f52..236dc8c9f9 100755
--- a/src/ipamm_mad/remotes/vultr/unregister_address_range
+++ b/src/ipamm_mad/remotes/vultr/unregister_address_range
@@ -28,12 +28,12 @@ ONE_LOCATION = ENV['ONE_LOCATION'] unless defined?(ONE_LOCATION)
 
 if !ONE_LOCATION
     LIB_LOCATION      ||= '/usr/lib/one'
-    VULTR_LOCATION    ||= '/usr/lib/one/ruby/vendors/vultr/lib'
+    VULTR_LOCATION    ||= '/usr/lib/one/oneprovision/provider_apis/vultr'
     RUBY_LIB_LOCATION ||= '/usr/lib/one/ruby'
     GEMS_LOCATION     ||= '/usr/share/one/gems'
 else
     LIB_LOCATION      ||= ONE_LOCATION + '/lib'
-    VULTR_LOCATION    ||= '/usr/lib/one/ruby/vendors/vultr/lib'
+    VULTR_LOCATION    ||= ONE_LOCATION + '/oneprovision/provider_apis/vultr'
     RUBY_LIB_LOCATION ||= ONE_LOCATION + '/lib/ruby'
     GEMS_LOCATION     ||= ONE_LOCATION + '/share/gems'
 end
diff --git a/src/oneprovision/lib/terraform/providers/vultr.rb b/src/oneprovision/lib/terraform/providers/vultr.rb
index 208054f58c..e36736b207 100644
--- a/src/oneprovision/lib/terraform/providers/vultr.rb
+++ b/src/oneprovision/lib/terraform/providers/vultr.rb
@@ -17,9 +17,9 @@
 ONE_LOCATION = ENV['ONE_LOCATION'] unless defined?(ONE_LOCATION)
 
 if !ONE_LOCATION
-    VULTR_LOCATION ||= '/usr/lib/one/ruby/vendors/vultr/lib'
+    VULTR_LOCATION ||= '/usr/lib/one/oneprovision/provider_apis/vultr'
 else
-    VULTR_LOCATION ||= ONE_LOCATION + '/lib/ruby/vendors/vultr/lib'
+    VULTR_LOCATION ||= ONE_LOCATION + '/oneprovision/provider_apis/vultr'
 end
 
 $LOAD_PATH << VULTR_LOCATION
diff --git a/share/vendor/ruby/gems/vultr/lib/vultr.rb b/src/oneprovision/provider_apis/vultr/lib/vultr.rb
similarity index 100%
rename from share/vendor/ruby/gems/vultr/lib/vultr.rb
rename to src/oneprovision/provider_apis/vultr/lib/vultr.rb
diff --git a/src/vnm_mad/remotes/elastic/vultr_vnm.rb b/src/vnm_mad/remotes/elastic/vultr_vnm.rb
index cb4fc5c803..01aa939203 100644
--- a/src/vnm_mad/remotes/elastic/vultr_vnm.rb
+++ b/src/vnm_mad/remotes/elastic/vultr_vnm.rb
@@ -18,14 +18,14 @@ ONE_LOCATION = ENV['ONE_LOCATION'] unless defined?(ONE_LOCATION)
 
 if !ONE_LOCATION
     LIB_LOCATION      ||= '/usr/lib/one'
+    VULTR_LOCATION    ||= '/usr/lib/one/oneprovision/provider_apis/vultr'
     RUBY_LIB_LOCATION ||= '/usr/lib/one/ruby'
     GEMS_LOCATION     ||= '/usr/share/one/gems'
-    VULTR_LOCATION    ||= '/usr/lib/one/ruby/vendors/vultr/lib'
 else
     LIB_LOCATION      ||= ONE_LOCATION + '/lib'
+    VULTR_LOCATION    ||= ONE_LOCATION + '/oneprovision/provider_apis/vultr'
     RUBY_LIB_LOCATION ||= ONE_LOCATION + '/lib/ruby'
     GEMS_LOCATION     ||= ONE_LOCATION + '/share/gems'
-    VULTR_LOCATION    ||= ONE_LOCATION + '/lib/ruby/vendors/vultr/lib'
 end
 
 # %%RUBYGEMS_SETUP_BEGIN%%