vtbl work, pass structs by ptr