separate api and web module