initialization
Merge https://github.com/brmey/P23