Add ::Component object factory