removed dependency on Q