Separated code in several files for future support of multiple scripting
languages