Improve source protocol to support all available features