adding controlP buffer support