buffer interface, not input buffer