this should be better but isn't