States for programs
modified if node
merge + deviceState
fixing bug and really start program when needed