interface version 1 uses stack_tuple.hpp