massive changes to make it usable