pass structure implemented