reworked this one and a few others