%% Presented a system accounting for functional and non-functional requirements
We have presented an integrated system for container implementation selection, which can take into account the functional and non-functional requirements of the program it is working on.

%% Ease of extending / flexibility
Our system is extremely flexible, and can be easily extended with new container types and new functionality on those types, as we showed by adding associative collections and several new data types to our library.

%% Demonstrated predictive power of profiling and benchmarking, although limited testing
We demonstrated how benchmarking of container implementations and profiling of target applications can be done separately and then combined.
We prove that this approach has merit, although our testing had notable limitations that future work should improve on.
We also found that while linear regression is powerful enough for many cases, more research is required on how best to gather and preprocess data in order to best capture an implementation's performance characteristics.

%% Researched feasibility of adaptive containers, found issues with overhead and threshold detection
We test the effectiveness of adaptive containers, in which the underlying implementation changes as the container grows.
We find significant challenges in implementing this technique, suggesting that the overhead incurred is more important in lower-level compiled languages such as Rust.
%% Future work should focus on minimising overhead and finding the ideal threshold
Future work should focus on minimising this overhead, as well as on finding the correct threshold at which to switch implementation.
