changed parameters a little and added generic get<T> and set<T> functions to component. All getters and setters should be removed