Refactor support classes
refactor main