added optional argument to Klass and an option to define child as final