Solution with test