Cleaned up and close to final