draft interface for data struct