~ refactored for source compatibility 1.6