unit tested all other cases