Fixed #95, #96, #97, #98, #99, #100, #102, #103, #104, #105, #106, #107