I think this should be passed by reference