this also looks like a good place to use events to keep the components decoupled..