diff --git a/addon/components/bs-form.js b/addon/components/bs-form.js
index 9307b98..b004598 100755
--- a/addon/components/bs-form.js
+++ b/addon/components/bs-form.js
@@ -1,24 +1,24 @@
-import { notEmpty } from '@ember/object/computed';
 import { assert } from '@ember/debug';
-import RSVP from 'rsvp';
 import BsForm from 'ember-bootstrap/components/bs-form';
 
-export default BsForm.extend({
-  '__ember-bootstrap_subclass': true,
+export default class BsFormWithChangesetValidationsSupport extends BsForm {
+  '__ember-bootstrap_subclass' = true;
 
-  hasValidator: notEmpty('model.validate'),
+  get hasValidator() {
+    return typeof this.model?.validate === 'function';
+  }
 
-  validate(model) {
+  async validate(model) {
     let m = model;
 
     assert(
       'Model must be a Changeset instance',
       m && typeof m.validate === 'function'
     );
-    return new RSVP.Promise(function (resolve, reject) {
-      m.validate().then(() => {
-        model.get('isValid') ? resolve() : reject();
-      }, reject);
-    });
-  },
-});
+
+    await m.validate();
+    if (!model.get('isValid')) {
+      throw new Error();
+    }
+  }
+}