Refactor

1. merged with the changes of Benoit's project
2. removed samples
3. changed IddeaComponent in order to allow inheritance