begin generic method calling and integration to lua