solution revised