do not start cleanup in constructor
use factories
rename interfaces
moved axis enum into class
use factories