this was a fun challenge