Merge pull request #780 from mapleoin/redef

get rid of redefinition of 'initialize'
add some error handling to help with validation
add one role validation method to be used in child objects
use a validation_error method which also does logging
find-database