inlined private method