diff --git a/04_removeFromArray/removeFromArray.js b/04_removeFromArray/removeFromArray.js
index 1bedeb0..0d26157 100644
--- a/04_removeFromArray/removeFromArray.js
+++ b/04_removeFromArray/removeFromArray.js
@@ -1,6 +1,23 @@
-const removeFromArray = function() {
 
-};
+
+function removeFromArray(...args) {
+
+
+const array=args[0];
+const newArray=[];
+
+array.forEach((item)=>{
+   
+if(!args.includes(item)){
+newArray.push(item);}
+});
+return newArray;};
 
 // Do not edit below this line
 module.exports = removeFromArray;
+
+
+
+
+
+
diff --git a/04_removeFromArray/removeFromArray.spec.js b/04_removeFromArray/removeFromArray.spec.js
index 21f34cf..c17239a 100644
--- a/04_removeFromArray/removeFromArray.spec.js
+++ b/04_removeFromArray/removeFromArray.spec.js
@@ -4,22 +4,22 @@ describe('removeFromArray', () => {
   test('removes a single value', () => {
     expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]);
   });
-  test.skip('removes multiple values', () => {
+  test('removes multiple values', () => {
     expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]);
   });
-  test.skip('ignores non present values', () => {
+  test('ignores non present values', () => {
     expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]);
   });
-  test.skip('ignores non present values, but still works', () => {
+  test('ignores non present values, but still works', () => {
     expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]);
   });
-  test.skip('can remove all values', () => {
+  test('can remove all values', () => {
     expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]);
   });
-  test.skip('works with strings', () => {
+  test('works with strings', () => {
     expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]);
   });
-  test.skip('only removes same type', () => {
+  test('only removes same type', () => {
     expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]);
   });
 });