modified for push to npm