suppress unchecked cast in solution copy