this breaks binary and source compatibility. Are you sure want to inconvenience for that? You could probably make this work just adding methods, which would keep others compatible, right?