changed all platforms into a inheritence of Surface