maybe you can extract this further?