we could just handle this logic in a view - that be cleaner