This looks somewhat ugly.