add window subclassing