add middle interface called block