this way is named z scheme