closed #7, closed #8, closed #9, closed #10, closed #11, closed #12, closed #13, closed #14 and closed #15