new refactored to use gateway for reads