replaces ivars with properties