add Component interface back, and make component query parameterized type use it
add getComponentId() to Asset