Created necessary classes and methods