do not use __attribute__((constructor)) to initalize KVO (doesn't work on linux)