WIP because I haven't been able to test this locally due to me not really knowing how to set up cross compilation.