migrate public/ to a more modular structure as suggested by experienced