may take a long time but ill do it