changes to: #9, #10, #11 and #12