add gitignore
update Strategy and Observer