lua script engine is abstracted as runtime
layer abstraction