modifying to fit our needs