Interface modify, tiny refine, and xml output (untested and unfinished