\usetikzlibrary{arrows, positioning, shapes.geometric}
\usetikzlibrary{shadows.blur}


\tikzset{
    %Define standard arrow tip
    >=stealth',
}


%
%     % Define arrow style
%     pil/.style={
%         ->,
%         thick,
%         shorten <=2pt,
%         shorten >=2pt,
%     }
% }


    \begin{tikzpicture}
    	\tikzset{
	  wn/.style={draw, fill=white,
	             %line width=1pt,
		     minimum height=2em,
	             %shade,
	             shape=rectangle,
		     rounded corners,
		     blur shadow={shadow blur steps=5}},
	},

    	\node [wn] (sources) {SOURCES};
    	\node [wn, right =of sources] (llvm) {LLVM};
    	%\alt<2-3>{\node[wn, below =of llvm, fill=yellow] (instr) {INSTRUMENTATION};}
	       {\node[wn, below =of llvm] (instr) {INSTRUMENTATION};}
    	\node [wn, left =of instr] (slicing) {SLICING};
    	\node [wn, below =of slicing] (se) {SYMBOLIC EXECUTION};


    %\only<2>{\node [wn, below =of llvm, fill=yellow] (instr) {INSTRUMENTATION};}
    %\only<2>{\raisebox{0pt}[0pt][0pt]{adasdfasdfasfsadfsf}}

    %\only<3-4>{\node [wn, left =of instr, fill=yellow] (slicing) {SLICING};}
    %\only<5>{\node [wn, below =of slicing, fill=yellow] (se) {SYMBOLIC EXECUTION};}

        \path[draw,->] (sources) edge (llvm)
	               (llvm) edge (instr)
		       (instr) edge (slicing)
		       %(otsu.east) -| (right) -- (left) |- (gchannel)
		       (slicing) edge (se);

        %% text boxes over the imge
        \tikzset{overlaybox/.style={draw=black, minimum width=2em,
	                                                   fill=gray!15, align=left,
                                                       dashed, text depth=2,
                                                       opacity=1}}
    	\node[above  =of instr, overlaybox] (float1) 
                  {\textbf{Instrumentation}\\[1em]
                    Make memory symbolic\\[0.5em]
                    Define \_\_VERIFIER\_* functions\\[0.5em]
                    Inser errors checks
                   };

    \end{tikzpicture}
