class Reference {

	@Override
	public boolean equals(Object o) {
		if (o instanceof Reference<?>) {
			Reference<?> other = (Reference<?>) o;

			return this.type == other.type && this.id == other.id;
		}
		return false;
	}

	@SuppressWarnings("unchecked") public  Reference(P propoid);
	public  Reference(Class<? extends P> type, long id);

}