working on improving codebase slightly, adding inputbuffer

inputbuffer will handle input, tab completion, command interpretation, etc.