Updated to follow a node module structure