Re-factor to make entity derive from prop