Flyweight pattern for sorts in java backend

ready for review