How to break programming plateu - C#