Fisrt version.
Second pass.