i suppose i should at least pretend to make this useful