all components implemented