prototype struct wrapper