Component base class and base interface + initial version of answer