initialize must set attributes only if they are not set yet