diff --git a/actions.go b/cmd/multini/actions.go similarity index 100% rename from actions.go rename to cmd/multini/actions.go diff --git a/args.go b/cmd/multini/args.go similarity index 100% rename from args.go rename to cmd/multini/args.go diff --git a/main.go b/cmd/multini/main.go similarity index 100% rename from main.go rename to cmd/multini/main.go diff --git a/reader.go b/cmd/multini/reader.go similarity index 100% rename from reader.go rename to cmd/multini/reader.go diff --git a/stat_unix.go b/cmd/multini/stat_unix.go similarity index 100% rename from stat_unix.go rename to cmd/multini/stat_unix.go diff --git a/stat_windows.go b/cmd/multini/stat_windows.go similarity index 100% rename from stat_windows.go rename to cmd/multini/stat_windows.go diff --git a/writer.go b/cmd/multini/writer.go similarity index 100% rename from writer.go rename to cmd/multini/writer.go diff --git a/README b/doc/README similarity index 100% rename from README rename to doc/README diff --git a/output/output.go b/internal/output/output.go similarity index 100% rename from output/output.go rename to internal/output/output.go diff --git a/types/comment.go b/internal/types/comment.go similarity index 100% rename from types/comment.go rename to internal/types/comment.go diff --git a/types/common.go b/internal/types/common.go similarity index 100% rename from types/common.go rename to internal/types/common.go diff --git a/types/deleted.go b/internal/types/deleted.go similarity index 100% rename from types/deleted.go rename to internal/types/deleted.go diff --git a/types/element.go b/internal/types/element.go similarity index 100% rename from types/element.go rename to internal/types/element.go diff --git a/types/emptyline.go b/internal/types/emptyline.go similarity index 100% rename from types/emptyline.go rename to internal/types/emptyline.go diff --git a/types/ini.go b/internal/types/ini.go similarity index 100% rename from types/ini.go rename to internal/types/ini.go diff --git a/types/keyvalue.go b/internal/types/keyvalue.go similarity index 100% rename from types/keyvalue.go rename to internal/types/keyvalue.go diff --git a/types/section.go b/internal/types/section.go similarity index 100% rename from types/section.go rename to internal/types/section.go diff --git a/types/trash.go b/internal/types/trash.go similarity index 100% rename from types/trash.go rename to internal/types/trash.go diff --git a/tests/common.sh b/test/data/common.sh similarity index 100% rename from tests/common.sh rename to test/data/common.sh diff --git a/tests/expected_ini/test_add_keyval.sh.ini b/test/data/expected_ini/test_add_keyval.sh.ini similarity index 100% rename from tests/expected_ini/test_add_keyval.sh.ini rename to test/data/expected_ini/test_add_keyval.sh.ini diff --git a/tests/expected_ini/test_add_keyval_existing.sh.ini b/test/data/expected_ini/test_add_keyval_existing.sh.ini similarity index 100% rename from tests/expected_ini/test_add_keyval_existing.sh.ini rename to test/data/expected_ini/test_add_keyval_existing.sh.ini diff --git a/tests/expected_ini/test_add_section.sh.ini b/test/data/expected_ini/test_add_section.sh.ini similarity index 100% rename from tests/expected_ini/test_add_section.sh.ini rename to test/data/expected_ini/test_add_section.sh.ini diff --git a/tests/expected_ini/test_del_key.sh.ini b/test/data/expected_ini/test_del_key.sh.ini similarity index 100% rename from tests/expected_ini/test_del_key.sh.ini rename to test/data/expected_ini/test_del_key.sh.ini diff --git a/tests/expected_ini/test_del_key_multiple.sh.ini b/test/data/expected_ini/test_del_key_multiple.sh.ini similarity index 100% rename from tests/expected_ini/test_del_key_multiple.sh.ini rename to test/data/expected_ini/test_del_key_multiple.sh.ini diff --git a/tests/expected_ini/test_del_keyval.sh.ini b/test/data/expected_ini/test_del_keyval.sh.ini similarity index 100% rename from tests/expected_ini/test_del_keyval.sh.ini rename to test/data/expected_ini/test_del_keyval.sh.ini diff --git a/tests/expected_ini/test_del_section.sh.ini b/test/data/expected_ini/test_del_section.sh.ini similarity index 100% rename from tests/expected_ini/test_del_section.sh.ini rename to test/data/expected_ini/test_del_section.sh.ini diff --git a/tests/expected_ini/test_get_key.sh.ini b/test/data/expected_ini/test_get_key.sh.ini similarity index 100% rename from tests/expected_ini/test_get_key.sh.ini rename to test/data/expected_ini/test_get_key.sh.ini diff --git a/tests/expected_ini/test_get_key_multiple.sh.ini b/test/data/expected_ini/test_get_key_multiple.sh.ini similarity index 100% rename from tests/expected_ini/test_get_key_multiple.sh.ini rename to test/data/expected_ini/test_get_key_multiple.sh.ini diff --git a/tests/expected_ini/test_get_keyval.sh.ini b/test/data/expected_ini/test_get_keyval.sh.ini similarity index 100% rename from tests/expected_ini/test_get_keyval.sh.ini rename to test/data/expected_ini/test_get_keyval.sh.ini diff --git a/tests/expected_ini/test_get_section.sh.ini b/test/data/expected_ini/test_get_section.sh.ini similarity index 100% rename from tests/expected_ini/test_get_section.sh.ini rename to test/data/expected_ini/test_get_section.sh.ini diff --git a/tests/expected_ini/test_get_section_list.sh.ini b/test/data/expected_ini/test_get_section_list.sh.ini similarity index 100% rename from tests/expected_ini/test_get_section_list.sh.ini rename to test/data/expected_ini/test_get_section_list.sh.ini diff --git a/tests/expected_ini/test_set_keyval.sh.ini b/test/data/expected_ini/test_set_keyval.sh.ini similarity index 100% rename from tests/expected_ini/test_set_keyval.sh.ini rename to test/data/expected_ini/test_set_keyval.sh.ini diff --git a/tests/in_ini/test_add_keyval.sh.ini b/test/data/in_ini/test_add_keyval.sh.ini similarity index 100% rename from tests/in_ini/test_add_keyval.sh.ini rename to test/data/in_ini/test_add_keyval.sh.ini diff --git a/tests/in_ini/test_add_keyval_existing.sh.ini b/test/data/in_ini/test_add_keyval_existing.sh.ini similarity index 100% rename from tests/in_ini/test_add_keyval_existing.sh.ini rename to test/data/in_ini/test_add_keyval_existing.sh.ini diff --git a/tests/in_ini/test_add_section.sh.ini b/test/data/in_ini/test_add_section.sh.ini similarity index 100% rename from tests/in_ini/test_add_section.sh.ini rename to test/data/in_ini/test_add_section.sh.ini diff --git a/tests/in_ini/test_del_key.sh.ini b/test/data/in_ini/test_del_key.sh.ini similarity index 100% rename from tests/in_ini/test_del_key.sh.ini rename to test/data/in_ini/test_del_key.sh.ini diff --git a/tests/in_ini/test_del_key_multiple.sh.ini b/test/data/in_ini/test_del_key_multiple.sh.ini similarity index 100% rename from tests/in_ini/test_del_key_multiple.sh.ini rename to test/data/in_ini/test_del_key_multiple.sh.ini diff --git a/tests/in_ini/test_del_keyval.sh.ini b/test/data/in_ini/test_del_keyval.sh.ini similarity index 100% rename from tests/in_ini/test_del_keyval.sh.ini rename to test/data/in_ini/test_del_keyval.sh.ini diff --git a/tests/in_ini/test_del_section.sh.ini b/test/data/in_ini/test_del_section.sh.ini similarity index 100% rename from tests/in_ini/test_del_section.sh.ini rename to test/data/in_ini/test_del_section.sh.ini diff --git a/tests/in_ini/test_get_key.sh.ini b/test/data/in_ini/test_get_key.sh.ini similarity index 100% rename from tests/in_ini/test_get_key.sh.ini rename to test/data/in_ini/test_get_key.sh.ini diff --git a/tests/in_ini/test_get_key_multiple.sh.ini b/test/data/in_ini/test_get_key_multiple.sh.ini similarity index 100% rename from tests/in_ini/test_get_key_multiple.sh.ini rename to test/data/in_ini/test_get_key_multiple.sh.ini diff --git a/tests/in_ini/test_get_keyval.sh.ini b/test/data/in_ini/test_get_keyval.sh.ini similarity index 100% rename from tests/in_ini/test_get_keyval.sh.ini rename to test/data/in_ini/test_get_keyval.sh.ini diff --git a/tests/in_ini/test_get_section.sh.ini b/test/data/in_ini/test_get_section.sh.ini similarity index 100% rename from tests/in_ini/test_get_section.sh.ini rename to test/data/in_ini/test_get_section.sh.ini diff --git a/tests/in_ini/test_get_section_list.sh.ini b/test/data/in_ini/test_get_section_list.sh.ini similarity index 100% rename from tests/in_ini/test_get_section_list.sh.ini rename to test/data/in_ini/test_get_section_list.sh.ini diff --git a/tests/in_ini/test_set_keyval.sh.ini b/test/data/in_ini/test_set_keyval.sh.ini similarity index 100% rename from tests/in_ini/test_set_keyval.sh.ini rename to test/data/in_ini/test_set_keyval.sh.ini diff --git a/tests/test_add_keyval.sh b/test/data/test_add_keyval.sh similarity index 100% rename from tests/test_add_keyval.sh rename to test/data/test_add_keyval.sh diff --git a/tests/test_add_keyval_existing.sh b/test/data/test_add_keyval_existing.sh similarity index 100% rename from tests/test_add_keyval_existing.sh rename to test/data/test_add_keyval_existing.sh diff --git a/tests/test_add_section.sh b/test/data/test_add_section.sh similarity index 100% rename from tests/test_add_section.sh rename to test/data/test_add_section.sh diff --git a/tests/test_del_key.sh b/test/data/test_del_key.sh similarity index 100% rename from tests/test_del_key.sh rename to test/data/test_del_key.sh diff --git a/tests/test_del_key_multiple.sh b/test/data/test_del_key_multiple.sh similarity index 100% rename from tests/test_del_key_multiple.sh rename to test/data/test_del_key_multiple.sh diff --git a/tests/test_del_keyval.sh b/test/data/test_del_keyval.sh similarity index 100% rename from tests/test_del_keyval.sh rename to test/data/test_del_keyval.sh diff --git a/tests/test_del_section.sh b/test/data/test_del_section.sh similarity index 100% rename from tests/test_del_section.sh rename to test/data/test_del_section.sh diff --git a/tests/test_get_key.sh b/test/data/test_get_key.sh similarity index 100% rename from tests/test_get_key.sh rename to test/data/test_get_key.sh diff --git a/tests/test_get_key_multiple.sh b/test/data/test_get_key_multiple.sh similarity index 100% rename from tests/test_get_key_multiple.sh rename to test/data/test_get_key_multiple.sh diff --git a/tests/test_get_keyval.sh b/test/data/test_get_keyval.sh similarity index 100% rename from tests/test_get_keyval.sh rename to test/data/test_get_keyval.sh diff --git a/tests/test_get_section.sh b/test/data/test_get_section.sh similarity index 100% rename from tests/test_get_section.sh rename to test/data/test_get_section.sh diff --git a/tests/test_get_section_list.sh b/test/data/test_get_section_list.sh similarity index 100% rename from tests/test_get_section_list.sh rename to test/data/test_get_section_list.sh diff --git a/tests/test_set_keyval.sh b/test/data/test_set_keyval.sh similarity index 100% rename from tests/test_set_keyval.sh rename to test/data/test_set_keyval.sh diff --git a/run_test.sh b/test/run_test.sh similarity index 100% rename from run_test.sh rename to test/run_test.sh