improve code...