merged with work_codility branch