mostly me learning rust FFI