refactor, must install lua