2.0 initial commit, replacing emit with send