variables how do they work