add a solution for #19