adapter: options are optionable
adapter: abstract class replaced with interface
repository: added getters