Pulled out GapBuffer into its own file