First component implementation