Added JGrapht library, created new classes and modified existing ones