update to use real implementation and a mock implementation for dependencies