move : to inside the guard
use the boolean value of the guard
add location websocket support