refactors and adds 0 cases