Looks very complicated and time consuming. Good job!