use references instead of copying the frakking object