sketches
variants of implementation