use dynamic method creation