diff --git a/src/Entities.js b/src/Entities.js
deleted file mode 100644
index 872a837f3a..0000000000
--- a/src/Entities.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
-Copyright 2015, 2016 OpenMarket Ltd
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-import * as sdk from './index';
-
-function isMatch(query, name, uid) {
- query = query.toLowerCase();
- name = name.toLowerCase();
- uid = uid.toLowerCase();
-
- // direct prefix matches
- if (name.indexOf(query) === 0 || uid.indexOf(query) === 0) {
- return true;
- }
-
- // strip @ on uid and try matching again
- if (uid.length > 1 && uid[0] === "@" && uid.substring(1).indexOf(query) === 0) {
- return true;
- }
-
- // split spaces in name and try matching constituent parts
- const parts = name.split(" ");
- for (let i = 0; i < parts.length; i++) {
- if (parts[i].indexOf(query) === 0) {
- return true;
- }
- }
- return false;
-}
-
-/*
- * Converts various data models to Entity objects.
- *
- * Entity objects provide an interface for UI components to use to display
- * members in a data-agnostic way. This means they don't need to care if the
- * underlying data model is a RoomMember, User or 3PID data structure, it just
- * cares about rendering.
- */
-
-class Entity {
- constructor(model) {
- this.model = model;
- }
-
- getJsx() {
- return null;
- }
-
- matches(queryString) {
- return false;
- }
-}
-
-class MemberEntity extends Entity {
- getJsx() {
- const MemberTile = sdk.getComponent("rooms.MemberTile");
- return (
-
- );
- }
-
- matches(queryString) {
- return isMatch(queryString, this.model.name, this.model.userId);
- }
-}
-
-class UserEntity extends Entity {
- constructor(model, showInviteButton, inviteFn) {
- super(model);
- this.showInviteButton = Boolean(showInviteButton);
- this.inviteFn = inviteFn;
- this.onClick = this.onClick.bind(this);
- }
-
- onClick() {
- if (this.inviteFn) {
- this.inviteFn(this.model.userId);
- }
- }
-
- getJsx() {
- const UserTile = sdk.getComponent("rooms.UserTile");
- return (
-
- );
- }
-
- matches(queryString) {
- const name = this.model.displayName || this.model.userId;
- return isMatch(queryString, name, this.model.userId);
- }
-}
-
-export function newEntity(jsx, matchFn) {
- const entity = new Entity();
- entity.getJsx = function() {
- return jsx;
- };
- entity.matches = matchFn;
- return entity;
-}
-
-/**
- * @param {RoomMember[]} members
- * @return {Entity[]}
- */
-export function fromRoomMembers(members) {
- return members.map(function(m) {
- return new MemberEntity(m);
- });
-}
-
-/**
- * @param {User[]} users
- * @param {boolean} showInviteButton
- * @param {Function} inviteFn Called with the user ID.
- * @return {Entity[]}
- */
-export function fromUsers(users, showInviteButton, inviteFn) {
- return users.map(function(u) {
- return new UserEntity(u, showInviteButton, inviteFn);
- });
-}
diff --git a/src/components/views/rooms/UserTile.js b/src/components/views/rooms/UserTile.js
deleted file mode 100644
index 01bbe7d4d1..0000000000
--- a/src/components/views/rooms/UserTile.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2015, 2016 OpenMarket Ltd
-Copyright 2019 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-import React from 'react';
-import PropTypes from 'prop-types';
-import createReactClass from 'create-react-class';
-import * as Avatar from '../../../Avatar';
-import * as sdk from "../../../index";
-
-export default createReactClass({
- displayName: 'UserTile',
-
- propTypes: {
- user: PropTypes.any.isRequired, // User
- },
-
- render: function() {
- const EntityTile = sdk.getComponent("rooms.EntityTile");
- const user = this.props.user;
- const name = user.displayName || user.userId;
- let active = -1;
-
- // FIXME: make presence data update whenever User.presence changes...
- active = user.lastActiveAgo ?
- (Date.now() - (user.lastPresenceTs - user.lastActiveAgo)) : -1;
-
- const BaseAvatar = sdk.getComponent('avatars.BaseAvatar');
- const avatarJsx = (
-
- );
-
- return (
-
- );
- },
-});