use dynamic compile