adds cpp/component.hpp and tests