separated sources into modules by layers