UPDATE - added Promises first data manipulation, reordering etc.