auto and decltype added