add some jacking around with functions