Complicated but kinda wokring ish