automatic initialization and updating of outputs

Currently, output initialization and updating needs to be explicitly specified in Components and is done regardless of the use of the outputs. The initialization and updating of outputs should be done automatically by the composition and only if output is actually used.