For the second point, the TableView "where we can create new columns with expressions behind it where it calculates values to display in the table" - I take it it's a JavaFX TableView. If that is the case, I personally wrap each object corresponding to a table row into a JavaFX-specific class (a ViewModel if you like) that keeps a Map<String, Property>. The JavaFX ViewModel has some registerProperty(String propertyName, Class<T> valueClass) method that makes the appropriate property and puts it into the above-mentioned map. HTH
George Tudose