diff --git a/src/projectile.cpp b/src/projectile.cpp
new file mode 100644
index 0000000..19d92e1
--- /dev/null
+++ b/src/projectile.cpp
@@ -0,0 +1,4 @@
+#include "projectile.hpp"
+#include <godot_cpp/classes/node3d.hpp>
+
+namespace godot {}
diff --git a/src/projectile.hpp b/src/projectile.hpp
new file mode 100644
index 0000000..0f72db9
--- /dev/null
+++ b/src/projectile.hpp
@@ -0,0 +1,18 @@
+#ifndef PROJECTILE_HPP
+#define PROJECTILE_HPP
+
+#include "weapon_data.hpp"
+namespace godot {
+class Node3D;
+class ProjectilePool;
+
+class IProjectile {
+public:
+    virtual void set_weapon_data(Ref<WeaponData> data) = 0;
+    void return_to_pool();
+private:
+    ProjectilePool *pool{nullptr};
+};
+}
+
+#endif // !PROJECTILE_HPP