changed various things and added more methods