Fixed #4, Fixed #5, Fixed #8