still buggy, but making progress