refactored blogpost()