first cleaned up version.