seems working. need to write tests and find alternate way to init the system