implementation details
more doc