More structure and much better return types.