lightened up the load here a bit, made it more generic