add plan and getopt lib