looks halfway-reasonable now