Uses pivate functions