Gateways refactoring + new gateway