yay double dispatch woo
almost done
time to finalize