Changed many classes to have interfaces, removed public variables