The logic branches in messy ways and needs to be designed well now so it does not sprawl in the future.