use new to avoid thread concurrent problem