add print_result && log level into write
Logger: vars -> static
add UserAgent::Factory
cleanup