Author's solution