self solution