Attempting this with nodejs as a learning exercise