eliminate needs to be type checked after assign is implemented