add observer, port parse_options from Rapache