closed #570 closed #566 closed #567 closed #573 worked on #562 worked on #571