refactor file organization
add setup