refactored for levison option