nice idea and now I look at this a little more I think I might decouple the circular buffer code a little also