Movement probably is not optimized, but this is the general idea. Encode: https://youtu.be/7mGlZ2-xOiY