fixed some things using variadic templates, written intersection method in componnet container, and unit test to it