issue 4,6,7

pullreq #5 がmergeできなかったので色々とコンフリクト解消したissue #4 #6 #7 の修正です