some useful code for furture use