public <T extends Component> List<T> getAllComponentsOnEntity(UUID entity) {
        synchronized (componentStores) {
            LinkedList<T> components = new LinkedList<>();

            for (HashMap<UUID, ? extends Component> store : componentStores.values()) {
                if (store == null) {
                    continue;
                }

                T componentFromThisEntity = (T) store.get(entity);

                if (componentFromThisEntity != null) {
                    components.addLast(componentFromThisEntity);
                }
            }

            return components;
        }
    }