modified public API