Made a few updates, still very verbose, will implement some updated logic soon