hexagonal architecture example code