only checks for zero-value of structs