attribute keys now optional