some refactor
add part of struts support
add some comments