Basic Data source Design Principles