please describe the purpose of this class and add @author, @since