The logic looks solid