functionality fixes and new class additions