Lots of work. kthxbai