added query parameter parsing