fix a bug in constructor overriding: appName is now a lazy variable

this is because subclass constructor always execute AFTER superclass constructor, there is no way to change sequence.

Will investigate possibility to use static companion object instead