clarify the implementation