diff --git a/alib2data/src/std/variant.hpp b/alib2data/src/std/variant.hpp
index 182f7260b6dd17a9029391ed8b5272ddbb8ab17b..d780330d73d2bc85c45e3cb6bb911eb78070b9d7 100644
--- a/alib2data/src/std/variant.hpp
+++ b/alib2data/src/std/variant.hpp
@@ -147,29 +147,29 @@ public:
 	variant_base(F&& value) { this->type_id = typeid(F).hash_code(); new (&this->data) F(std::move(value)); }
 };
 
-template<typename F, typename... Ts>
-class variant : public variant_base<static_max<sizeof(F), sizeof(Ts)...>, static_max<alignof(F), alignof(Ts)...>, F, Ts...> {
-	using helper_t = variant_helper<F, Ts...>;
+template<typename ... Ts>
+class variant : public variant_base<static_max<sizeof(Ts)...>, static_max<alignof(Ts)...>, Ts...> {
+	using helper_t = variant_helper<Ts...>;
 
 public:
-	using variant_base<static_max<sizeof(F), sizeof(Ts)...>, static_max<alignof(F), alignof(Ts)...>, F, Ts...>::variant_base;
+	using variant_base<static_max<sizeof(Ts)...>, static_max<alignof(Ts)...>, Ts...>::variant_base;
 
 	//copy consructor
-	variant(const variant<F, Ts...>& old) : variant_base<static_max<sizeof(F), sizeof(Ts)...>, static_max<alignof(F), alignof(Ts)...>, F, Ts...>()
+	variant(const variant<Ts...>& old) : variant_base<static_max<sizeof(Ts)...>, static_max<alignof(Ts)...>, Ts...>()
 	{
 		this->type_id = old.type_id;
 		helper_t::copy(old.type_id, &old.data, &this->data);
 	}
 
 	//move constructor
-	variant(variant<F, Ts...>&& old) : variant_base<static_max<sizeof(F), sizeof(Ts)...>, static_max<alignof(F), alignof(Ts)...>, F, Ts...>()
+	variant(variant<Ts...>&& old) : variant_base<static_max<sizeof(Ts)...>, static_max<alignof(Ts)...>, Ts...>()
 	{
 		this->type_id = old.type_id;
 		helper_t::move(old.type_id, &old.data, &this->data);
 	}
 
 	//assignment operator
-	variant<F, Ts...>& operator= (variant<F, Ts...> old)
+	variant<Ts...>& operator= (variant<Ts...> old)
 	{
 		std::swap(this->type_id, old.type_id);
 		std::swap(this->data, old.data);
@@ -178,37 +178,37 @@ public:
 	}
 
 
-	bool operator== (const variant<F, Ts...>& other) const
+	bool operator== (const variant<Ts...>& other) const
 	{
 		return helper_t::compareEq(this->type_id, &this->data, other.type_id, &other.data);
 	}
 
-	bool operator!= (const variant<F, Ts...>& other) const
+	bool operator!= (const variant<Ts...>& other) const
 	{
 		return !(*this == other);
 	}
 
-	bool operator< (const variant<F, Ts...>& other) const
+	bool operator< (const variant<Ts...>& other) const
 	{
 		return helper_t::compareLess(this->type_id, &this->data, other.type_id, &other.data);
 	}
 
-	bool operator> (const variant<F, Ts...>& other) const
+	bool operator> (const variant<Ts...>& other) const
 	{
 		return other < *this;
 	}
 
-	bool operator<= (const variant<F, Ts...>& other) const
+	bool operator<= (const variant<Ts...>& other) const
 	{
 		return !(*this > other);
 	}
 
-	bool operator>= (const variant<F, Ts...>& other) const
+	bool operator>= (const variant<Ts...>& other) const
 	{
 		return !(*this < other);
 	}
 
-	int compare(const variant<F, Ts...>& other) const
+	int compare(const variant<Ts...>& other) const
 	{
 		return helper_t::compareHelper(this->type_id, &this->data, other.type_id, &other.data);
 	}
@@ -221,7 +221,7 @@ public:
 	template<typename T>
 	void set(T&& value)
 	{
-		if(std::is_base_of_any<T, F, Ts...>::value) {
+		if(std::is_base_of_any<T, Ts...>::value) {
 			helper_t::destroy(this->type_id, &this->data);
 			new (&this->data) T(value);
 			this->type_id = typeid(T).hash_code();
@@ -232,7 +232,7 @@ public:
 	template<typename T>
 	void set(const T& value)
 	{
-		if(std::is_base_of_any<T, F, Ts...>::value) {
+		if(std::is_base_of_any<T, Ts...>::value) {
 			helper_t::destroy(this->type_id, &this->data);
 			new (&this->data) T(std::move(value));
 			this->type_id = typeid(T).hash_code();
@@ -264,7 +264,7 @@ public:
 		helper_t::destroy(this->type_id, &this->data);
 	}
 
-	friend std::ostream& operator <<(std::ostream& out, const variant<F, Ts...>& obj) {
+	friend std::ostream& operator <<(std::ostream& out, const variant<Ts...>& obj) {
 		helper_t::print(out, obj.type_id, &obj.data);
 		return out;
 	}