ABPD model working full OO style
merge