This should closes #3 #4 #7

If problem arises then open again