changed structure, more node_module-like