introduce readable_buffer interface to does not support writing
introduce interface cloneable_buffer