Portable object oriented extension to C