fixed issue #9
fixed issue #4
fixed issue #5
fixed issue #6
fixed issue #12
fixed issue #10
fixed issue #14
fixed issue #11
fixed issue #13
fixed issue #15
fixed issue #8
fixed issue #2