reuse the code