Solutions for the lessons and challenges from codility