a new way for seting value for struct