hash ids
format code
add license
update demo project to include listener example.