owlqn algorithm implemented by go