Create abstract class for gateways