3 types of variable