1. remove integer_sequence with another alternative
2. rename some classes and method