added all sorts of stuff