Implemented all components
check first etc