fixing the API for some functions to be less silly and fixing the RNN