please describe the purpose of this class