add fromBuffer