DP12, refactoring
DP17, refactoring