Main #Private Part