added some exception