added lot o stuff