more framework level stuff