added absorb code