Updated build to use custom replacement rule based on dictionary