[STILL NEED FIX] add more test