joins and some necessary change in identifier implementation