a lot of works, add external jars