This is imcs implementation