re-factored folder structured