add dynamic attrbutes and operations