java 8 default methods
merging state