Use protocol
Merge pull request #587 from bhariharan/unstable

Use protocol