Factored components to use the cake pattern.