primarily fiddling with function wrapping on the client to handle subs and calls