this part was needlessly complicated