Refactored for distinction between core engine functionality and plugin functionality