BROKEN: rewriting the class. Under construciton