Revert "Class is now abstract"

This reverts commit 98a21da3a173a8f96b063c391d0615e0d8a06138.
Revert "Revert "Class is now abstract""

This reverts commit 14cee76f67f83f150faf9c94f60804ad62309d27.
Revert "Revert "Revert "Class is now abstract"""

This reverts commit dcc1ebcfb20675ed956a5cf131580af359dc3163.