diff --git a/README.md b/README.md
index 115c499..8629caf 100644
--- a/README.md
+++ b/README.md
@@ -196,9 +196,10 @@ which follows the immutable infrastructure paradigm.
What ways are you familiar with to deliver a software? What are the advantages and disadvantages of each method?
- * Archive - collect all your app files into one archive (e.g. tar) and deliver it to the user.
- * Package - depends on the OS, you can use your OS package format (e.g. in RHEL/Fefodra it's RPM) to deliver your software with a way to install, uninstall and update it using the standard packager commands
- * Images - Either VM or container images where your package is included with everything it needs in order to run successfully.
+ * Source - Maintain build script within version control system so that user can build your app after cloning repository. Advantage: User can quickly checkout different versions of application. Disadvantage: requires build tools installed on users machine.
+ * Archive - collect all your app files into one archive (e.g. tar) and deliver it to the user. Advantage: Only tool needed is an unarchiver. Disadvantage: Requires repeating the same procedure when updating, not good if there are a lot of dependencies.
+ * Package - depends on the OS, you can use your OS package format (e.g. in RHEL/Fefodra it's RPM) to deliver your software with a way to install, uninstall and update it using the standard packager commands. Advantages: Package manager takes care of support for installation, uninstallation, updating and dependency management. Disadvantage: Requires managing package repository.
+ * Images - Either VM or container images where your package is included with everything it needs in order to run successfully. Advantage: everything is preinstalled, it has high degree of environment isolation. Disadvantage: Requires knowledge of building and optimizing images.