replaces ivars with properties
fixed placeholder behavior