fixes some design problem (code needs cleaning :()