rename classproperty to AsnClass; introduce the subclasses for AsnClass
use subclasses instead of AsnClass
rename to make sense for recursive algorithm
pull set field down to sub classes
rename parameter;