updates and compatibility, fork on npm