Tested in Plunker