push selection formatting down into core