number of layers and neurons configurable at runtime