q10 complete.. needs refactor