new version, updated on new framework; TODO : refactor; introduce patterns etc ...