don't init outputCallbacks unless there are callbacks
Avoid type-name conflicts causing cache conflicts (makes the cache per-T; also avoids locking on the happy-path)
Merge branch 'master' into fix_detached_head
Merge pull request #168 from StackExchange/fix_detached_head

Fix detached head