- added user handling to separate classes
- moved init methods to __construct()