modernize core
modernize tests
use modern 'instancetype' for obj construction
more instancetype
more [class]
added missing [class]