should be a tad  more robust