added noise function struct