use dynamic method gen