final commit, pass through function sorta works but seems okay