added ComponentContainer trait