divide up the source
update