implemented a basic component system. working well.