created interfaces as base for different implementation approaches
added missing package exports for interfaces