more properly utilizing virtual / override