Main Class and Methods