add animation support, clean up some stuff, start to improve random generation