modified some interface for component