update changelog and bump to 0.4.0 for npm publish