Closed #41
Closed #37
Cloesd #25
Closed #42