DP07, refactoring
DP08, refactoring
DP09, refactoring
DP10, refactoring
DP12, refactoring