add program controller
change to camel case from snake case
enable to pass source file as command line argument
fix program controller