Closed #108. Closed #102. Closed #96. Closed #106. Closed #107. Closed #95.