Fulfills all requirements.

Can sort by all properties if needed.