updating worker to be async, evolving map now use layers