better npm interface