fix problems on practical use