Structured decomposition for reversible Boolean functions