Refactor logic again
Lower degeneration