- Edited the whole thing to work variadic templates