I guess this is ok. A lot of work.