move more functionality to specific adapter implementation
demo should use most current version