allow input to come from somewhere else
take numpy and theano rng as args
test mlp