add string-object serialization and change funcs signature