notes
using buffer shift