Multiple block support
use dynamic arraies && unify source applying
add profiling