I am pretty sure this is unnecessary - you can define a TK service w/o a protocol, as a long as it only has lifecycle functions.  Hmm ... are you doing this to ensure some dependency order or something like that?