solved best parts 1-3