Reforked updated with changes