add usage error exception
handle more usage errors