what a fucking day
modify protocol interface