added more special cases