added throw exception to interface