Fixed #7, Fixed #17, Fixed #97, Fixed #98