Reimplement cases 3 4 5