Edit interface and add underlying structures

Added functions to get by ID/name, added the discussed data structures