Fixed #1 Fixed #3 Fixed #4 Fixed #6