will add debugging versions of these later