hidde implementation details to external libs