fix component implementation