Basic architecture, needs sorting and adding/deleting.