consolidated base class and API; removed Blog/Tinman distinction