reuse the get function