adds the ability to declare a class abstract and non-instantiable using the new keyword, tests included