clean this puppy up a bit, make sure it works right and hide errors