moved logic to another assembly