Modules may or may not implement an interface subroutine. If an interface subroutine is not implemented, the core modules assume it isn't needed.
OS modules should be completely ignorant of the provisioning engine being used
OS modules should never have conditional statements regarding the provisioning engine or provisioning architecture. For example, an OS module should not need to worry about whether the OS is installed on a bare metal or virtual machine.