make module as small as possible - and make more sensible