Too much branching code...