refactored for using the 'dub' package manager