Update component concept to be simpler