not sure if I'll use this or not, but I might as well commit it