Closes issue 1
closes issue 2
Fixes issue 3
Closes issue 4
Closes issue 5