add observer, command, composite
fix