refacotr in basic project