issue #83 /cleaner implementation/