final fully worked