add settings as a crosscutting concern
add block evaluator
better neurons, add layer + tests