the implementation, #2