only using C api <3