preparer class implementation