compile struct but doesn't work