Changed the way components work so that it is easier for users to create their own components