Improve the way we return each final state