ti consiglio di studiare il codice proposto qui
http://www.dustindiaz.com/roll-out-your-own-interface/
perche' emula bene certi processi che sono presenti in librerie piu' complesse
(namespace con metodi privati e chainability, prima di tutto)

ciao