Added licensing and toString() because fuck you.