Issue #7 #8 #5 fixed

No need to merge it.