big changes to components, formerly delegates