basic framework of assignment