improved init behaviour