refactored for blog post publish