list -> array
compliment -> complement