have a type result struct