note to self to add defaults
complete the subroutine signatures and parameter stuff, and fix how we are doing closures as well