First try.
Second commit.