naming here is a bit hard to follow - add a comment or use more verbose names?