Insteon::Thermo_i2 Reorganize i2 init routine and clean up spacing in i2 package
Insteon::Thermo_i2 Move Child Objects to First-Level MH Objects

Use eval to create true Top-Level objects with user friendly variable names.  This may be frowned upon in perl programming, but is is already used in a number of places within MH, so it can't be that bad. :-p  As noted in the comments, objects which will be linked to insteon scenes should not be created in this manner.

A big thanks to Gregg in 2007 who posted a comment that led me to this solution.
http://misterhouse.10964.n7.nabble.com/Coding-question-Dynamic-variables-with-strict-refs-td6300.html
Insteon::Thermo_i2 Define Parent and set Initial Value in Child Object new Routines