change interpreter framework to use dynamic_bind and less reflection