Cleaned up/commented, about to modify Node IDs to accept any string