update self solution