TODO: implement buffereddata parsing