properties can't be abstract, move to final