add exception and test