added some assertion