q2

q2 first version, may have bugs,, also the issues in q1 haven't been
solved
q1 q1 done