What if the user passes in a dict for X and a matrix for y? Need more robust error catching.