Probably doesn't need to be a member function.