obsever pattern
remove swp