not use internalBuffer