Naive buffer impl
Big rewrite