work in progress!

rebuilding this from scratch, be patient!