proxy with command, observer, factory, etc