fix bug: if extra is empty, extra.get(man) in line 43 will go wrong