- implemented basic components
- some refactoring