bufferSIze need to be implemented