Changed architecture to a component style