abstract gate module & add forward service