log + display to user