does not check for uninitialized variables