Remove dependency on DataFrames while preserving functionality

Also fix tests