refactors gef/consumer