should have implemented all cases now.