Testing and refactoring ComponentAbstract