use initializeProperties method instead of __construct