Implemented C++1Y proposal N3620
Refactored and added comments
Updated tests
Final cleanup