Explain JS types, Promises, Maps, WebSockets | Citadel