chore(mixins.component) refactor sub and unsub to be shared
chore(components) apply refactor to components
test(mixins.component) add tests for on and off