this took SO long DX
i hope this works...