handling special cases