added pipelining and options interface