implementing ref