solution has been splitted into 2: 2007 and 2010