some more abstraction from rbm to ann