whatever, this will be a fun project one day...