output - dpendency setting moved to initializer
interpreter - dependency setting moved to initializer
exception handling fixes
use Gem::Version instead of string
output definition fields made immutable