works on non gui