This sounds like a good exercise for you to undertake. This will teach you about factories and APIs, both as a user and as a designer.
Seriously - this would probably take you about a week to get working with 2 of the protocols you mentioned. Write tests. :-)
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?