issue 4,6,7

pullreq #5 がmergeできなかったので色々とコンフリクト解消しました

issue #4 #6 #7 を実装しています