make functionality coherent