new class, minor style issues