A lot of work but worth it