libraries should always use rely on no prototype extension use